package com.example.apiservice.config;

import com.alibaba.csp.sentinel.slots.block.degrade.DegradeRule;
import com.alibaba.csp.sentinel.slots.block.degrade.DegradeRuleManager;
import jakarta.annotation.PostConstruct;
import org.springframework.context.annotation.Configuration;

import java.util.ArrayList;
import java.util.List;

@Configuration
public class SentinelConfig {
    @PostConstruct
    public void initRules() {
        List<DegradeRule> rules = new ArrayList<>();
        DegradeRule rule = new DegradeRule();
        rule.setResource("AiClient"); // 资源名，对应Feign接口
        rule.setCount(10); // 异常比例阈值（10%）
        rule.setTimeWindow(10); // 熔断时间窗口（秒）
        rule.setMinRequestAmount(5); // 最小请求数
        rule.setStatIntervalMs(10000); // 统计时长（毫秒）
        rules.add(rule);
        DegradeRuleManager.loadRules(rules);
    }
}
